package com.zb.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * 请求接口限流注解
 * @Author WEN
 * @Date 2023/8/28 0028
 **/

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
@Documented
public @interface RequestLimit {
    /**
     * 限制时间，单位：秒，默认时间为60s
     * @return
     */
    long timeout() default 60;

    /**
     * 同IP同接口在60s内允许请求的次数，默认5次
     * @return
     */
    int count() default 500;

    /**
     * 时间类型，默认为秒
     * @return
     */
    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;

    /**
     * 提示消息
     * @return
     */
    String message() default "";
}
